home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / turbo_part1.lha / modula / docs / WHATS_NEW.DOC < prev   
Encoding:
Text File  |  1995-01-24  |  7.9 KB  |  207 lines

  1. ===========================================
  2. 26/Jan/95 Released version V1.40 onto AmiNet
  3. ===========================================
  4.  
  5. New in V1.40:
  6. ------------
  7.  
  8.     Added overflow(-v), range(-r), stack(-s) & divide-by-0(-z) checking.
  9.     Some of your old modules may fail. :)
  10.     The stack checking routines require that atleast 2K of stack be always
  11.     available.
  12.     Overflow checking will only be performed on 32Bit multiplys if the
  13.     the new -020 option is enabled.
  14.  
  15.     Added Raw module for setting the console to RAW mode.
  16.     Added FIO.SetBuffer functions which will set a console to RAW in FIO/StdIO
  17.     recognised way.
  18.  
  19.     Added CliArgs module, V36+ dosers may like to use Dos.ReadArgs instead.
  20.     Do not use M2Lib.argc & M2Lib.argv anymore.
  21.  
  22.     Added FastStorage module.
  23.  
  24.     Pointer checking is no longer performed inline. So modules that use it are
  25.     much smaller.
  26.  
  27. Bugs in V1.3, fixed in V1.40:
  28. -----------------------------
  29.  
  30.     Registers d2 & d3 were sometimes not being protected by procedures which
  31.     used LONGREAL floating point math.
  32.  
  33.     Assertion failures occured when the symbol file cache was turned
  34.     off (M2SYMCACHE=OFF) and multiple filenames were passed to M2C.
  35.  
  36.     Assignments between BCPL pointer and normal pointers were not being
  37.     converted correctly.
  38.  
  39.     FIO.mod was not using the result of StdIO.fprintf correcty, leading
  40.     to bogus OpFailed results from functions like WriteInt, WriteReal ...
  41.  
  42.     Two disjointed subrange types such as [0..10] & [100..200] are no longer
  43.     assignment compatible. VAL & CHR will also complain.
  44.  
  45.     Renamed module 'ModeID' to 'ModeKeys'.
  46.  
  47.     If a task created using Dos.CreateProc or AmigaLib.CreateTask ever hit a
  48.     runtime error, it would abort using the main tasks exit code.
  49.     Under 1.40 aborting tasks (execpt the main one) will be suspended
  50.     (after the error requester is displayed). You should make sure that any
  51.     created tasks never run into such trouble.
  52.  
  53.     Added new '-P' compiler flag because '-p' does not work on some Amigas.
  54.  
  55.     LONGCARD & ADDRESS are properly unsigned.
  56.     If you mix ADDRESS expressions with integer (signed) expressions then the
  57.     resultant expression will be signed. Use standard function VAL to keep the
  58.     sign under control.
  59.  
  60. ==========================================
  61. 6/Dec/94 Released version V1.3 onto AmiNet
  62. ==========================================
  63.  
  64. New in V1.3:
  65. ------------
  66.  
  67.     Added pointer range checking to procedure variables.
  68.  
  69.     For some unknown reason V1.2 never got uploaded onto AmiNet?
  70.     V1.3 does not contain any major new features but does contain a few
  71.     bug fixes:
  72.  
  73. Bugs in V1.2, fixed in V1.3:
  74. ----------------------------
  75.  
  76.     Changed Exec.MsgPort.mp_Flags from SHORTSET to SHORTCARD.
  77.  
  78.     Changed Intuition.IntuiMessage.Qualifier from CARDINAL to BITSET.
  79.  
  80.     INC & DEC were not coerceing their second arguments.
  81.  
  82.     RETURN did not like procedure (constant) results: (ST 1025 HALT).
  83.  
  84.     M2C should now run (most of the time) from a 4K stack.
  85.     V1.1 used to run in 4K but V1.2 did not.
  86.     Youll get a requester if stack space ever runs out.
  87.  
  88.     M2B,M2C,M2E,M2L now all print error messages to "*", the output of m2e
  89.     still goes to Dos.Output(), so can be still be redirected.
  90.  
  91. =========================================
  92. 18/Nov/94 Version V1.2 (Never released??)
  93. =========================================
  94.  
  95. New in V1.2:
  96. ------------
  97.  
  98.     Major new feature: Resident symbol files (see CACHE.DOC).
  99.     This has probably introduced lots of new bugs :)
  100.  
  101.     Added crude object file caching (see CACHE.DOC).
  102.  
  103.     M2B no longer repeatedly invokes M2C, instead it passes a list of filenames
  104.     to M2C. If you disable the symbol file cache, then loaded symbol files will
  105.     still be shared between these files.
  106.  
  107.     M2B & M2L automatically invoke M2E.
  108.  
  109.     Added RealInOut module (see RealInOut.def).
  110.  
  111.     Added BIO & FIO modules
  112.     The floating point functions in these modules can only be used with
  113.     the full version of DICE. All other functions are perfectly useable
  114.     with the (included) freeware version. (see M2/BIO.def M2/FIO.def).
  115.  
  116.     Added module CLOSE termination statement sequence to free allocated
  117.     resources. Renamed Intuition.CLOSE constant to _CLOSE because it know
  118.     clashes with the new CLOSE keyword (see EXTENSIONS.DOC).
  119.  
  120.     Added disable value open array copying (* @N *) comment switch
  121.     (see EXTENSIONS.DOC).
  122.  
  123.     M2B & M2C & M2L now work just as well under OS 1.3 as 2.0+.
  124.     Previouly (under 1.3) break detection was not propagated to sub programs.
  125.     However 1.3 support increases the size of M2B, M2C & M2L by 4K.
  126.     When running under 1.3 NewCli, EndCli & Run must be in youre path,
  127.     I recommend you make them resident.
  128.  
  129.     MODULA:lib renamed to MODULA:mlib, MLIB: is assigned to MODULA:mlib.
  130.  
  131.     We no longer use the c.o supplied with DICE, instead MODULA:dice/dlib/
  132.     contains a version that does not contain a bug that made it unsuitable
  133.     for programs that used coroutines.
  134.  
  135.     Programs compiled with pointer checking enabled (-p) should run faster
  136.     because pointer checking no longer needs to check VAR parameter accesses,
  137.     instead any pointer deferenced to a formal VAR parameter is checked only
  138.     once (that is when its pushed). The same goes for fields inside WITH
  139.     statements (for pointers to records).
  140.  
  141. Bugs in V1.1, fixed in V1.2:
  142. ----------------------------
  143.  
  144.     NIL pointer tests in Storage.DE/ALLOCATE were missing.
  145.  
  146.     Removed unnessacary padding for byte fields declared in non-inteface
  147.     modules. If you created any persistent file based data structures with M2C
  148.     v1.1, then you may have trouble reading them back in!
  149.  
  150.     Fixed case sensitive file suffix comparisons in M2B & M2C.
  151.  
  152.     Made run time array index checking error location reports more accurate.
  153.  
  154.     Corrected StdIO.getc & Dos.DupLock function definitions.
  155.  
  156.     When longreal function procedures declared inside DEFINITION FOR * MODULE
  157.     were begin treated as proper procedures (ie the result ignored, as allowed)
  158.     the function result was being pushed onto the stack for no reason, resulting
  159.     in address error failures.
  160.  
  161.     Fixed M2C TRAPV failures when going from large negative LONGREAL to REAL
  162.     constant at compile time eg real := MIN(LONGREAL).
  163.  
  164.     M2C & M2L would sometimes forget to unlock directories specified using -M
  165.     flag.
  166.  
  167.     M2C & M2L used to append "\" to -Mpaths that ended with ':'
  168.     eg ram: into ram:\
  169.  
  170.     M2C used to a give requester: "function exit without return"
  171.     in TC.mod (source module) on line 929, when set expressions contain
  172.     out of range (0..31) values (eg {100}).
  173.  
  174.     Added overflow checks to internal memory table arrays.
  175.  
  176.     M2C did not check for cyclic importing in definition modules (M2B did)
  177.     This was because M2C and M2B were originally merged, so the check inside M2C
  178.     used to be redundant.
  179.  
  180.     Any files named 'obj','sym','bin' '/obj'... would be mistaken for
  181.     directories.
  182.  
  183.     VAL on constants was converting to a compiler prefered type, rather than the
  184.     type that was specified.
  185.  
  186.     Made some changes to InOut.mod.
  187.  
  188.     Imported identifier aliasing could not be applied to local modules.
  189.  
  190.     Linking with Coroutines used to fail, because the symbol '__Abort' could
  191.     not be found. This reference should have been (re)named to '__m2_Abort'.
  192.  
  193.     When stack checking used to fail, the stack would be reset to that recorded
  194.     in the m2_main.o code (m2_safeStack).This was required so that the Error
  195.     Requester call would have enough stack. However this meant the stack would
  196.     be overwritten, which in turn meant that any clean up code specified
  197.     with StdLib.atexit, could not reliably access the stack (through any global
  198.     pointers) if stack checking was used. If V1.2 M2Lib.CheckStack* fails a
  199.     new stack is allocated for the Requestor call, so the old stack can be
  200.     referenced by any atexit() or CLOSE clean up code.
  201.  
  202. ====================================================
  203. 27/Sept/94 Released Initial version V1.1 onto AmiNet
  204. ====================================================
  205.  
  206.  
  207.